package game

import (
	"config"
	"github.com/name5566/leaf/log"
)

var halls map[int]*Hall

func init() {
	createHalls()
}


// 根据配置创建出所有的大厅
func createHalls() {
	halls = make(map[int]*Hall)
	for _, v := range config.HallConfigLoader.Data {
		hall := &Hall{hallID:v.ID}
		addHall(v.ID, hall)
		hall.onInit()
	}
}

// 向大厅管理器添加大厅
func addHall(hallID int, hall *Hall) {
	halls[hallID] = hall
}

// 移除一个大厅
func removeHall(hallID int) {
	delete(halls, hallID)
}

// 获取一个大厅实体
func getHall(hallID int) *Hall {
	if hall, ok := halls[hallID]; ok {
		return hall
	} else {
		log.Error("Hall Not Found: %v", hallID)
		return nil
	}
}

// 直接根据id获取一个房间实体
func getRoom(roomID int) *Room {
	for _, v := range halls {
		room := v.getRoom(roomID)
		if room != nil {
			return room
		}
	}

	log.Error("Room Not Found: %v", roomID)

	return nil
}

// 根据玩家情况选择合适的大厅进入
func getFitHall(player *User) *Hall {
	for _, v := range halls {
		return v
	}

	log.Error("未找到合适的大厅:  %v", player.str())
	return nil
}